Перейти к основному содержимому
Версия: 1.7.5

Распространенные ошибки

EnvironmentError: Not found ENV -> CONFIG_FILE

Не установлена переменная окружения CONFIG_FILE. Укажите путь к конфигу:

CONFIG_FILE=./config.yaml python3 main.py

ValidationError при загрузке конфига

Конфигурация не соответствует модели. Убедитесь, что:

  • Поле additional.port присутствует и является целым числом

  • Все обязательные поля вашего расширения BaseConfig заполнены

ValueError: Invalid value for 'name', must not be None

Обязательные поля модели не заполнены. Для CollectionHost обязательны name и responsible.

ValueError: Invalid value for 'protocol', must be one of ['tcp', 'udp', 'icmp']

Передано недопустимое значение enum. Проверьте допустимые значения в секции «Модели данных».

Данные не появляются в SolarLighthouse

  1. Проверьте, что модуль переходит в статус ASSETS_READY, а не FINISH сразу -- это значит данные были добавлены в storage

  2. Убедитесь, что scan_status_storage.append_host_in_storage() вызывается до завершения вашей функции

  3. Проверьте логи модуля на ошибки сериализации

Модуль зависает / не завершается

HTTP-сервер модуля запускается в отдельном потоке. Keeper отправляет POST /scan/shutdown после получения всех данных. Если модуль не завершается, проверьте что ваша функция не зависла в бесконечном цикле.

Как передать большое количество хостов?

SDK автоматически разбивает данные на пакеты по max_chunk_size (по умолчанию 500). Просто добавляйте хосты по одному через append_host_in_storage() -- чанкинг произойдет автоматически. Для ускорения можно уменьшить max_chunk_size в конфиге.

Как отлаживать маппинг данных?

Установите LOG_LEVEL=DEBUG:

LOG_LEVEL=DEBUG CONFIG_FILE=./config.yaml python3 main.py

Добавляйте в свой код:

import logging
log = logging.getLogger(__name__)

log.info(f"Обработан хост: {host.name}, интерфейсов: {len(host.net_interfaces or [])}")